﻿using System;
using System.Collections.Generic;
//using System.Linq;
using System.Text;

namespace formworks
{
    /// <summary>
    /// 业务模型数据流基础接口
    /// 使用框架数据模板层的方法处理业务，
    /// 构成基本的业务数据流模型
    /// </summary>
    public interface IOperate<T>
    {

        /// <summary>
        /// 检查是否存在该记录
        /// </summary>
        /// <param name="id">要检查的ID</param>
        /// <returns></returns>
        bool exists(Guid id);

        /// <summary>
        /// 查询对象表中所有记录
        /// 接收数据：请求此方法即可
        /// 返回数据：指定的实体对象列表
        /// </summary>
        /// <returns>指定的实体对象列表</returns>
        List<T> getList();


        

        /// <summary>
        /// 获取一个对象实体
        /// </summary>
        /// <param name="id">表ID</param>
        /// <returns>对象</returns>
        T getModel(Guid id);


        




        /// <summary>
        /// 添加记录，可以接收多条记录
        /// 接收数据：指定的实体对象
        /// 返回数据：为影响的行数
        /// </summary>
        /// <param name="model">指定的实体对象</param>
        /// <returns>为影响的行数</returns>
        int add(T model);

        /// <summary>
        /// 修改操作，可修改多条
        /// 接收数据：指定的实体对象
        /// 返回数据：为影响的行数
        /// </summary>
        /// <param name="model">指定的实体对象</param>
        /// <returns>为影响的行数</returns>
        int modify(T model);


        /// <summary>
        /// 删除数据，以ID为标识
        /// 接收数据：数组字符串 例：id1,id3,id4
        /// 返回数据：为影响的行数
        /// </summary>
        /// <param name="id">要删除的ID</param>
        /// <returns>为影响的行数</returns>
        int delete(Guid[] id);

        /// <summary>
        /// 删除数据
        /// 接收数据：指定的实体对象
        /// 返回数据：为影响的行数
        /// </summary>
        /// <param name="model">实体对象</param>
        /// <returns>为影响的行数</returns>
        int delete(T model);


    }//end IOperate
}//end formworks
